package com.cicigodd.brick.plug.system.user.api;


import com.cicigodd.brick.plug.common.entity.LoginUserInfo;
import com.cicigodd.brick.plug.system.role.request.SysRoleEditRequest;
import com.cicigodd.brick.plug.system.user.request.SysUserAddRequest;
import com.cicigodd.brick.plug.system.user.entity.SysUser;
import com.cicigodd.brick.plug.system.user.request.SysUserEditRequest;
import io.swagger.models.auth.In;

import java.util.Date;

/**
 * 系统用户管理对外接口
 *
 * @author cicigodd
 * @date 2022/09/22 14:42:03
 */
public interface SysUserServiceApi {

    /**
     * 添加
     */
    Integer addUser(SysUserAddRequest sysUserAddRequest);

    /**
     * 删除
     */
    void deleteUserById(Integer userId);

    /**
     * 编辑
     *
     */
    void edit(SysUserEditRequest sysUserEditRequest);

    /**
     * 获取用户登录需要的信息
     * @param account 账号
     * @return 用户详情信息
     */
    LoginUserInfo getUserLoginInfo(String account);

    /**
     * 获取用户信息
     * @param account 账号
     * @return 用户详情信息
     */
    SysUser getUserByAccount(String account);

    /**
     * 更新用户的登录信息
     * @param userId 用户id
     * @param loginTime 登录时间
     * @param ip    登录ip
     */
    void updateUserLoginInfo(Integer userId, Date loginTime, String ip);

    /**
     * 获取用户名
     * @param userId 用户id
     * @return 用户名
     */
    String getUserNameById(Integer userId);
}